package com.captain.lc.数组;

import java.util.HashMap;
import java.util.Objects;

/**
 * @author captain
 * @des: 两数之和
 * @date 2021/10/9 1:27
 */
public class TwoSum01 {

    public int[] twoSum(int[] nums, int target) {
        if (Objects.isNull(nums) || nums.length == 0) return null;
        //解题思路: 利用hash表的特性 , target - nums[i] 是否存在, 如果存在 , 则取出返回, 如果不存在 , 则进行存储
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int curNum = target - nums[i];
            if (map.containsKey(curNum)) {
                return new int[]{map.get(curNum), i};
            }
            map.put(nums[i], i);
        }
        return null;
    }
}
